// package com.basker.pisces.core;
//
// import java.util.HashMap;
// import java.util.Map;
//
// import com.basker.pisces.core.enums.DataObjectState;
//
// public abstract class AbstractDataContract implements IDataContract {
//
// private int initFlag;
// private boolean fromDB;
// private DataObjectState state;
// private Map<String, Object> oldValues;
//
// @Override
// public void beginInit() {
// initFlag++;
// }
//
// @Override
// public void endInit() {
// initFlag--;
// }
//
// @Override
// public boolean isInInitial() {
// return initFlag > 0;
// }
//
// @Override
// public void setFromDB(boolean fromDB) {
// this.fromDB = fromDB;
// }
//
// @Override
// public boolean isFromDB() {
// return fromDB;
// }
//
// @Override
// public DataObjectState getState() {
// return state;
// }
//
// @Override
// public void setState(DataObjectState state) {
// this.state = state;
// }
//
// @Override
// public void recordOldValue(String fieldName, Object oldValue) {
// if (oldValues == null) {
// oldValues = new HashMap<>(16);
// }
// oldValues.put(fieldName, oldValue);
// }
//
// @Override
// public boolean isChanged(String fieldName) {
// return oldValues == null ? false : oldValues.containsKey(fieldName);
// }
//
// }
